課程資訊
課程名稱
軟體開發方法
Software Development Methods 
開課學期
110-2 
授課對象
管理學院  資訊管理學研究所  
授課教師
蔡益坤 
課號
IM5027 
課程識別碼
725 U3340 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期三7,8,9(14:20~17:20) 
上課地點
管二302 
備註
部份週次之週三6有實習課,地點同上課教室。
限學士班三年級以上
總人數上限:50人
外系人數限制:4人 
 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

This course introduces a selection of theories and practices that, we believe, will enhance the student's ability in developing correct and high-quality software. The view taken here is that of an engineer (programmer, software engineer, or software architect) and hence the focus of the course is primarily on the technical aspects of software development process. We will start with an overview of the typical software development process and relevant issues and then study in greater details some fundamental elements of software modeling, design, and verification, along with several software productivity tools and development practices. To practice applying these methods and tools, we will carry out a term project that involves the development of a large Web application. We will also study Web application programming techniques and security, to better prepare for the project. 

課程目標
The goal of this course is to acquaint the students with some of the well-used methods and tools for practical software development as well as some fundamentals of software verification, so as to prepare them for a career in software development. 
課程要求
Object-Oriented Programming and Database Management. 
預期每週課後學習時數
 
Office Hours
每週二 13:30~14:00
每週三 13:30~14:00 備註: 或另以電郵約定時間 
指定閱讀
Class notes and selected readings. 
參考書目
See the course wiki site:
http://im.ntu.edu.tw/~tsay/dokuwiki/doku.php?id=courses:sdm2022:main 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
Homework 
10% 
 
2. 
Attendance/Participation 
10% 
 
3. 
Term Project 
50% 
 
4. 
Final Exam 
30% 
 
 
課程進度
週次
日期
單元主題
第1週
2/16  Introduction; Productivity Tools: Version Control with Git 
第2週
2/23  Software Modeling: An Overview of UML; Term Project: Initial Discussions 
第3週
3/02  Software Modeling: UML Diagrams; Productivity Tools: Debuggers 
第4週
3/09  Software Implementation: Web Programming Pearls 
第5週
3/16  Term Project: Proposal Presentations; Software Security: Web Application Security 
第6週
3/23  Software Modeling: Domain Modeling 
第7週
3/30  Software Design: Design Patterns 
第8週
4/06  Software Design: Design Patterns 
第9週
4/13  Term Project: First Preliminary Demos; Software Development Practice: Design Document 
第10週
4/20  Software Development Practice: Agile Development in Practice 
第11週
4/27  Software Verification: Testing 
第12週
5/04  Term Project: Second Preliminary Demos; Midterm Discussions (or Make-Up Lecture) 
第13週
5/11  Formal Specification: Formal Logic and Correctness Requirements 
第14週
5/18  Formal Verification: Program Logic 
第15週
5/25  Term Project: Final Presentations 
第16週
6/01  Final Exam 
第17週
6/08  Formal Verification: Verification Tools 
第18週
6/15  Wrap-Up Discussions